package com.yida.gwj.deposit.mapper;

import com.yida.gwj.common.domain.dto.GwjUserDTO;
import com.yida.gwj.deposit.domain.GwjDepositBusinessLog;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 签署意见（缴存业务管理模块）Mapper接口
 *
 * @author lqq
 * @date 2023-01-09
 */
public interface GwjDepositBusinessLogMapper {
	/**
	 * 查询签署意见（缴存业务管理模块）
	 *
	 * @param bizLogId 签署意见（缴存业务管理模块）主键
	 * @return 签署意见（缴存业务管理模块）
	 */
	public GwjDepositBusinessLog selectGwjDepositBusinessLogByBizLogId(Long bizLogId);

	/**
	 * 查询签署意见（缴存业务管理模块）列表
	 *
	 * @param gwjDepositBusinessLog 签署意见（缴存业务管理模块）
	 * @return 签署意见（缴存业务管理模块）集合
	 */
	public List<GwjDepositBusinessLog> selectGwjDepositBusinessLogList(GwjDepositBusinessLog gwjDepositBusinessLog);

	/**
	 * 新增签署意见（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessLog 签署意见（缴存业务管理模块）
	 * @return 结果
	 */
	public int insertGwjDepositBusinessLog(GwjDepositBusinessLog gwjDepositBusinessLog);

	/**
	 * 修改签署意见（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessLog 签署意见（缴存业务管理模块）
	 * @return 结果
	 */
	public int updateGwjDepositBusinessLog(GwjDepositBusinessLog gwjDepositBusinessLog);

	/**
	 * 删除签署意见（缴存业务管理模块）
	 *
	 * @param bizLogId 签署意见（缴存业务管理模块）主键
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessLogByBizLogId(Long bizLogId);

	/**
	 * 批量删除签署意见（缴存业务管理模块）
	 *
	 * @param bizLogIds 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessLogByBizLogIds(Long[] bizLogIds);

	/**
	 * 通过业务ID查询上一次流程进度的最后结束时间
	 *
	 * @param bizId 业务ID
	 * @return /
	 */
	Date selectPreviousEndDateByBizId(@Param("bizId") Long bizId);

	/**
	 * 查询上一个步骤的最终提交人
	 *
	 * @param bizId  业务ID
	 * @param stepId 步骤ID
	 * @param result 操作结果
	 * @return /
	 */
	GwjUserDTO selectPreviousSubmitUser(@Param("bizId") Long bizId, @Param("stepId") Long stepId, @Param("result") String result);

	/**
	 * 删除签署意见（缴存业务管理模块）
	 *
	 * @param bizId 业务ID
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessLogByBizId(Long bizId);

}
